Business entities engage in numerous activities based on a variety of automated processes (e.g., relying on computerized activities and business software applications) and operations based on human actions (e.g., phone calls, faxes, e-mails, etc.). As a result, obtaining an accurate snapshot of “what is going on with the business” becomes more complex and critical for businesses to make quick decisions to leverage market opportunities, to respond in a timely manner, to gain an advantage or to prevent losses.
Businesses and other organizations use computers, and in particular, computer database applications, to monitor and record information about organizational activities. Often, an organization will have recurring processes or activities that must be performed. Indeed, it is common for an organization to have numerous instances of an activity in various stages of completion at any given time. As one example, a business may sell goods based on orders received from customers. An activity or a process of interest may be fulfilling those customer orders; each purchase order represents a separate instance of that activity or process. At any particular time, that business may have multiple instances of the activity (i.e., multiple orders from multiple customers) in various stages of completion. As another example, a financial institution may loan funds to customers based on applications from those customers. An activity of interest may be the processing of a loan application to completion (e.g., approval or rejection), with each loan application representing a separate instance of the activity. At any particular time, there may be multiple loan application instances in various stages of processing. As yet another example, a governmental entity responsible for issuing permits may have multiple permit applications in various stages of being processed.
In facilitating management of business activities, a system known as a “Business Activity Monitor” (BAM) concentrates and analyzes data from and for heterogeneous event sources in an attempt to present a single real-time view of the business state, status, trends, and critical conditions. Businesses or enterprise entities that successfully monitor business activities will be able to make decisions faster based on more relevant data and, therefore, will gain significant advantages. Such a business that can make decisions in real-time is sometimes referred to as a “Zero Latency Enterprise” (ZLE).
Currently, existing systems provide notifications or alerts to users upon an occurrence of an event in a process or an activity. For example, a sales manager may wish to be notified when purchase order #123 from Customer A is shipped. Or, a manager in an accounting department may wish to be notified when an event such as the delivery status of purchase order #223 from Customer B so that she may issue an invoice to Customer B.
The existing systems, however, require that the software developers statically hard-code the notification conditions in the existing systems for the users. The existing systems also expect that the software developers set or predict conditions for a given specific situation. For example, suppose Merchant X establishes an agreement with Customer A that Customer A would not pay for shipping costs for any order placed by Customer A that are not shipped within two hours after the orders are received by Merchant X. Consequently, Merchant X's sales manager may wish to be notified when any purchase order placed by Customer A is not shipped within two hours after the order is received. In other words, instead of being notified when an event (e.g., order received, order approved, order shipped, or the like) has happened to a particular order, Merchant X's sales manager wishes to know the occurrence of a defined condition to any instance of the process (e.g., the existence of one or more unfulfilled purchase orders received more than 90, 105 or 120 minutes ago).
Under the existing systems, Merchant X's sales manager may need to specifically request that the software be adapted to his needs and to accommodate the agreement with Customer A. In addition, when Merchant X's sales manager wishes to change the notification conditions due to changes to the agreement with Customer A, the software developer may be required to modify the existing systems so that Merchant X's sales manager receives the correct notification.
In addition, some existing event alert or notification systems inefficiently evaluate the set of data or records to determine whether the event has happened. For example, some existing system would execute a query against all purchase orders' data constantly to determine whether the event happened. As the purchase order data increases, the existing system spends a substantial amount of resources to perform tasks, such as receiving the purchase orders, creating purchase order records, receiving updated data on purchase orders, correlating updated data with the purchase order records, processing all the purchase order data, or the like. In addition, the same set of data may constantly being updated or modified. As a result, these existing systems require considerable resources to accommodate these modifications or changes to the data, not to mention the need to evaluate data to determine whether a notification needs to be issued.
Accordingly, improvements in business process notifications by pre-correlating a set of data from multiple instances of business processes or activities before notifying the users are desired to address one or more of these and other disadvantages.